package com.fdb.efp.nls.service.facade;

import com.fdb.efp.nls.service.vo.CoeffCfgAppVO;
import com.fdb.efp.flow.common.service.Approve;
import com.fdb.efp.flow.common.vo.PageApproveVO;

import java.util.List;

/**
 * <p>
 * 提额系数调整申请表的Service类
 * </p>
 * @author szbd
 * @createDate 2018-09-17 15:10:24
 */
public interface CoeffCfgAppService extends Approve {
    @Override
    void pass(String bizSerno, PageApproveVO pageApproveVo);

    /**
     * 查询本人所属的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryAllOwner(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询本机构的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryAllCurrOrg(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询本机构及下属机构的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryAllCurrDownOrg(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 插入提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public int insertCoeffCfgApp(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 根据主键删除提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public int deleteCoeffCfgAppByPk(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 根据主键更新提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public int updateCoeffCfgAppByPk(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public CoeffCfgAppVO queryCoeffCfgAppByPk(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 条件查询单笔提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public CoeffCfgAppVO querySingleCoeffCfgAppByCondition(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 条件查询提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryCoeffCfgAppByCondition(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 条件分页查询提额系数调整申请表记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryCoeffCfgAppByConditionByPage(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 按法人机构查询是否有审批中的申请记录
     * @param legalOrgCode
     * @return
     */
    public List<CoeffCfgAppVO> queryCoeffCfgAppByLegalOrgCode(String legalOrgCode);
    
    /**
     * 校验非省级机构的系数是否大于省级配置
     */
    public int checkCoeffCfgApp(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 批量插入系数调整申请记录
     * @param listIn
     * @return
     */
    public int insertCoeffCfgAppList(List<CoeffCfgAppVO> listIn);
    
    /**
     * 查询该注册单位是否存在审批中的申请记录(省级及下属机构)
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgAppVO> queryCoeffCfgAppByTypeId(CoeffCfgAppVO coeffCfgAppVo);
    
}